#ifndef PARAFLUIDORIENTATION_H
#define PARAFLUIDORIENTATION_H

namespace ParaFluid
{
	/**
	* A 3D orientation defined by it's x, y and z rotations.
	*/
	class Orientation
	{
		
	public:
		
		/**
		* Destructor
		*/
		virtual ~Orientation();
		
		/**
		* Default Constructor
		* @note Default values for x, y and z is 0
		*/
		Orientation();
		
		/**
		* Constructor with values for x, y and z
		*/
		Orientation(float X, float Y, float Z);
		
		/**
		* Copy Constructor
		*/
		Orientation(const Orientation & other);
		
		/**
		* Assignment Operator
		*/
		Orientation & operator= (const Orientation & rhs);
		
		/**
		* Comparison Operator
		*/
		bool operator== (const Orientation & rhs) const;
		
		/**
		* Rotation, in degrees, along the X axis
		*/
		float x;
		
		/**
		* Rotation, in degrees, along the Y axis
		*/
		float y;
		
		/**
		* Rotation, in degrees, along the Z axis
		*/
		float z;
		
	};
	
}

#endif

